package com.lv.hechuang.utils;

/**
 * 正则表达式
 * Created by 吕晓彬 on 2017/11/10.
 */

public class RegexUtils {
    /* 手机号验证 没有做非空判断 */
    public static boolean isMobileNo(String mobiles) {
        String telRegex = "[1][123456789]\\d{9}";
        if (!mobiles.isEmpty()) {
            if (mobiles.length() == 11) {//判断位数
                if (mobiles.matches(telRegex)) {//判断正则表达式
                    return true;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

    //验证用户名格式(4~40位英文数字下划线中文)
    public static boolean isUserName(String userName) {
        String uname = "[A-Za-z0-9_\\-\\u4e00-\\u9fa5]+";
        if (!userName.matches(uname)) {//格式验证（中英数字）
            return false;
        } else {
            if (getTextCount(userName) < 4 || getTextCount(userName) > 40) {//字符数限制4-40
                return false;
            } else {
                return true;
            }
        }
    }

    /* 密码最少6位
     */
    public static boolean isPasswordNo(String password) {
        String psd = "^[a-zA-Z0-9]{6,}$";
        return password.matches(psd);
    }

    //验证是否纯数字
    public static boolean isNumber(String number) {
        String num = "[1-9]\\d*";
        return number.matches(num);
    }

    // 判断一个字符是否是中文
    public static boolean isChinese(char c) {
        return c >= 0x4E00 && c <= 0x9FA5;// 根据字节码判断
    }


    // 统计字符个数
    public static Integer getTextCount(String str) {
        int count = 0;
        if (str == null)
            return 0;
        for (char c : str.toCharArray()) {
            if (isChinese(c)) {
                count += 2;// 有一个中文字符就返回2
            } else {
                count++;//否则数目+1
            }
        }
        return count;
    }
}
